1 : <?php
2 : /*--------------------------------------------------------------------------+
3 : This file is part of eStudy.
4 : common/class.output.inc.php
5 : - Modulgruppe: Framework
6 : - Beschreibung: Klasse mit verschiedenen Funktionen zur Ausgabe von
7 : Meldungen etc.
8 : - Version: 0.5, 14/03/04
9 : - Autor(en): Jens Brueck <jb@bk-tech.net>
10 : Christian Gerhardt <case42gmx.net>
11 : +---------------------------------------------------------------------------+
12 : This program is free software; you can redistribute it and/or
13 : modify it under the terms of the GNU General Public License
14 : as published by the Free Software Foundation; either version 2
15 : of the License, or any later version.
16 : +---------------------------------------------------------------------------+
17 : This program is distributed in the hope that it will be useful,
18 : but WITHOUT ANY WARRANTY; without even the implied warranty of
19 : MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 : GNU General Public License for more details.
21 : You should have received a copy of the GNU General Public License
22 : Along with this program; if not, write to the Free Software
23 : Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
24 : +--------------------------------------------------------------------------*/
25 : /**
26 : * In dieser Datei befindet sich die Implementierung der Klasse Output.
27 : *
28 : * @package eStudy.Framework
29 : * @version 0.5, 14/03/04
30 : * @author Jens Brueck <jb@bk-tech.net>
31 : * @author Christian Gerhardt <case42gmx.net>
32 : */
33 : /**
34 : * Funktionen zur Ausgabe.
35 : * Sammlung von verschiedenen, haeufig eingesetzten Funktionen zur
36 : * einheitlichen Ausgabe z.B. von Bestaetigungen und Fehlermeldungen.
37 : * Funktionen sind zur Verwendung als Klassenmethoden gedacht, ohne
38 : * Erzeugung eines Objekts von Typ Output.
39 : * Beispiel:
40 : * <code>
41 : * Output::echoMessage("Hallo!");
42 : * </code>
43 : *
44 : * @author Jens Brueck <jb@bk-tech.net>
45 : * @author Christian Gerhardt <case42gmx.net>
46 : * @version 0.5, 14/03/04
47 : * @package eStudy.Framework
48 : */
49 : class Output {
50 : /**
51 : * Zeitzonen-Array zurückgeben
52 : *
53 : * @access public
54 : * @author Clemens Weiß <clemens.weiss@mni.fh-giessen.de>
55 : * @return array Zeitzonen-Array mit dem Offset in Stunden als Schlüssel und dem Namen als Wert
56 : */
57 : function getTimezones() {
58 0 : return array("-12" => "(GMT - 12:00) Enitwetok, Kwajalien", "-11" => "(GMT - 11:00) Midway Island, Samoa", "-10" => "(GMT - 10:00) Hawaii", "-9" => "(GMT - 9:00) Alaska", "-8" => "(GMT - 8:00) Pacific Time (US & Canada)", "-7" => "(GMT - 7:00) Mountain Time (US & Canada)", "-6" => "(GMT - 6:00) Central Time (US & Canada), Mexico City", "-5" => "(GMT - 5:00) Eastern Time (US & Canada), Bogota, Lima, Quito", "-4" => "(GMT - 4:00) Atlantic Time (Canada), Caracas, La Paz", "-3.5" => "(GMT - 3:30) Newfoundland", "-3" => "(GMT - 3:00) Brazil, Buenos Aires, Georgetown, Falkland Is.", "-2" => "(GMT - 2:00) Mid-Atlantic, Ascention Is., St Helena", "-1" => "(GMT - 1:00) Azores, Cape Verde Islands", "0" => "(GMT) Casablanca, Dublin, Edinburgh, London, Lisbon, Monrovia", "1" => "(GMT + 1:00) Berlin, Brussels, Copenhagen, Madrid, Paris, Rome", "2" => "(GMT + 2:00) Kaliningrad, South Africa", "3" => "(GMT + 3:00) Baghdad, Riyadh, Moscow, Nairobi", "3.5" => "(GMT + 3:30) Tehran", "4" => "(GMT + 4:00) Abu Dhabi, Baku, Muscat, Tbilisi", "4.5" => "(GMT + 4:30) Kabul", "5" => "(GMT + 5:00) Ekaterinburg, Islamabad, Karachi, Tashkent", "5.5" => "(GMT + 5:30) Bombay, Calcutta, Madras, New Delhi", "6" => "(GMT + 6:00) Almaty, Colomba, Dhakra", "7" => "(GMT + 7:00) Bangkok, Hanoi, Jakarta", "8" => "(GMT + 8:00) Beijing, Hong Kong, Perth, Singapore, Taipei", "9" => "(GMT + 9:00) Osaka, Sapporo, Seoul, Tokyo, Yakutsk", "9.5" => "(GMT + 9:30) Adelaide, Darwin", "10" => "(GMT + 10:00) Melbourne, Papua New Guinea, Sydney, Vladivostok", "11" => "(GMT + 11:00) Magadan, New Caledonia, Solomon Islands", "12" => "(GMT + 12:00) Auckland, Wellington, Fiji, Marshall Island",);
59 : }
60 :
61 : function getLanguages() {
62 0 : return array("da_DK" => "da_DK - Danish (DK)", "de_AT" => "de_AT - German (AT)", "de_CH" => "de_CH - German (CH)", "de_DE" => "de_DE - Deutsch (DE)",
63 0 : "el_GR" => "el_GR - Greek", "en_GB" => "en_GB - English (United Kingdom)", "en_US" => "en_US - English (United States)",
64 0 : "eo_XX" => "en_XX - Esperanto", "es_ES" => "es_ES - Spanish (Espanol internacional)", "fi_FI" => "fi_FI - Finnish (Suomi)",
65 0 : "fr_FR" => "fr_FR - French (FR)", "hi_IN" => "hi_IN - Hindi (India)", "it_IT" => "it_IT - Italian (Italy)", "ja_JP" => "ja_JP - Japanese (JP)",
66 0 : "ko_KR" => "ko_KR - Korean (Republic of Korea)", "nb_NO" => "nb_NO - Norsk bokmal (Norway)",
67 0 : "nl_NL" => "nl_NL - Nederlands (NL-BE)", "pl_PL" => "pl_PL - Polish (Poland)", "pt_PT" => "pt_PT - Portugues",
68 0 : "ru_RU" => "ru_RU - Russian", "tr_TR" => "tr_TR - Türkce (Türkiye)",
69 0 : "uk_UA" => "uk_UA - Ukrainian (Ukraine)", "zh_TW" => "zh_TW - Traditional Chinese (Taiwan)");
70 : }
71 :
72 : /**
73 : * Rückgabe von Datum und Uhrzeit mit Berücksichtigung von unterschiedlichen Zeitzonen
74 : * und Sommer-/Winterzeit
75 : *
76 : * @access public
77 : * @author Clemens Weiß <clemens.weiss@mni.fh-giessen.de>
78 : * @param string $picture - Format der Ausgabe wie bei date()-Funktion
79 : * @param mixed $timestamp - Auszugebende Zeit entweder als Unix-Timestamp (Integer!)
80 : * oder als Datums-String. Wird der Parameter weggelassen,
81 : * wird die aktuelle Zeit ausgegeben.
82 : * @return string Datumsstring
83 : */
84 : function echoDate($picture = "d.m.Y H:i", $timestamp = -1) {
85 14 : global $settings;
86 14 : if (is_string($timestamp)) $timestamp = strtotime($timestamp);
87 14 : if ($timestamp == -1) $timestamp = time();
88 14 : $timestamp = intval($timestamp);
89 : // bei Sommerzeit eine Stunde addieren
90 14 : if (date("I", $timestamp)) $timestamp+= 3600;
91 14 : if (isset($_SESSION["timezone"])) {
92 0 : $timestamp+= $_SESSION["timezone"]*3600;
93 0 : } else {
94 14 : $timezone = new DateTimeZone($settings["default_timezone"]);
95 14 : $dateTime = new DateTime("now", $timezone);
96 14 : $timestamp+= $timezone->getOffset($dateTime);
97 : }
98 14 : return gmdate($picture, $timestamp);
99 : }
100 : /**
101 : * Ausgabe der Kopfzeile (Ueberschrift) einer Tabelle.
102 : *
103 : * @static
104 : * @access public
105 : * @param string $title - Titel der Kopfzeile
106 : * @param integer $colspan - colspan der Kopfzeile (default = 1)
107 : * @return void
108 : */
109 : function echoTableHead($title, $colspan = 1) {
110 0 : $coltext = "";
111 0 : if ($colspan != 1) $coltext = "colspan='$colspan'";
112 0 : echo "<tr><td class='tableHead' $coltext>".$title."</td></tr>\n";
113 0 : }
114 : /**
115 : * Ausgabe einer Nachricht als Bestaetigung einer Aktion des Users.
116 : *
117 : * @static
118 : * @access public
119 : * @param string $message - Nachricht
120 : * @param integer $colspan - colspan der Tabellenzelle (default = 1)
121 : * @param bool $table - Gibt an, ob die Meldung als komplette Tabelle ausgegeben werden soll.
122 : * @return void
123 : */
124 : function echoMessage($message, $colspan = 1, $table = false) {
125 0 : $coltext = "";
126 0 : if ($colspan != 1) $coltext = "colspan='$colspan'";
127 0 : if ($table) echo "<table>";
128 0 : echo "<tr><td class='message' $coltext>$message</td></tr>\n";
129 0 : if ($table) echo "</table>";
130 0 : }
131 : /**
132 : * Ausgabe einer Fehlermeldung.
133 : *
134 : * @static
135 : * @access public
136 : * @param string $message - Nachricht
137 : * @param integer $colspan - colspan der Tabellenzelle (default = 1)
138 : * @param bool $fatal - Wenn true, wird Hinweis ausgegeben, dass der User
139 : * sich an den Webmaster wenden soll, falls der Fehler
140 : * noch einmal auftritt (default = false)
141 : * @param bool $table - Gibt an, ob die Meldung als komplette Tabelle ausgegeben werden soll.
142 : * @return void
143 : */
144 : function errorMessage($message, $colspan = 1, $fatal = false, $table = false) {
145 3 : global $settings;
146 3 : $coltext = "";
147 3 : if ($colspan != 1) $coltext = "colspan='$colspan'";
148 3 : if ($table) echo "<table>";
149 3 : echo "<tr><td class='error' $coltext>\n";
150 3 : echo "$message\n";
151 3 : if ($fatal) {
152 0 : echo "<hr/>Bitte wenden Sie sich an den Webmaster,<br/>\n";
153 0 : echo "falls dieser Fehler noch einmal auftritt:<br/>\n";
154 0 : echo "<a href='mailto:".$settings['admin_email']."'>".$settings['admin_email']."</a>\n";
155 0 : }
156 3 : echo "</td></tr>";
157 3 : if ($table) echo "</table>";
158 3 : }
159 : /**
160 : * Ausgabe und Auswertung einer Bestaetigungsabfrage.
161 : * Gibt einen Text und zwei Buttons ('Ja', 'Nein') aus.
162 : * Das aufrufende Skript wird nach Betaetigung eines Buttons wieder aufgerufen
163 : * und die Verarbeitung (durch die Zwischenspeicherung der <i>GET</i>- und <i>POST</i>-Daten
164 : * quasi an der gleichen Stelle fortgesetzt.
165 : * Anwendungsbeispiel:<br>
166 : * <code>
167 : * $confirmed = Output::confirmQuestion(PATH_TO_ROOT.SCRIPT_NAME, "Wollen Sie das wirklich?");
168 : * if ($confirmed === true) {
169 : * ...
170 : * }
171 : * elseif ($confirmed === false) {
172 : * ...
173 : * }
174 : * </code>
175 : *
176 : * @static
177 : * @access public
178 : * @param string $callingScript - Dateiname des Skripts, das die Funktion aufruft inkl. Pfad
179 : * @param string $text - Auszugebender Text
180 : * @param int $width - Tabellenbreite in Prozent
181 : * @param bool $table - Gibt an, ob die Meldung als komplette Tabelle ausgegeben werden soll.
182 : * @return bool true, wenn 'Ja' gedrueckt
183 : * false, wenn 'Nein' gedrueckt
184 : */
185 : function confirmQuestion($callingScript, $text = false, $width = 0, $table = false) {
186 0 : if (isset($_POST['Confirmed'])) {
187 0 : return true;
188 0 : } elseif (isset($_POST['NotConfirmed'])) {
189 0 : return false;
190 : } else {
191 0 : $getString = "";
192 0 : if (count($_GET) > 0) {
193 0 : foreach($_GET as $key => $getVar) {
194 0 : $getVars[] = $key."=".Data::toHTML($getVar);
195 0 : }
196 0 : $getString = "?".implode("&", $getVars);
197 0 : }
198 0 : if ($table) echo "<table>";
199 0 : echo "<tr><td><form id='Confirmation' method='post' action='$callingScript$getString'>\n";
200 0 : if (count($_POST) > 0) {
201 0 : $gtreplace = md5(microtime());
202 0 : $postVars = "<p class='pForm'>";
203 0 : foreach($_POST as $key => $postVar) {
204 0 : if (is_array($postVar)) {
205 0 : foreach($postVar as $var) {
206 0 : $postVars.= "<input name='{$key}[]' type='hidden' id='$key' value=\"".Data::toHTML($var) ."\" />\n";
207 0 : }
208 0 : } else {
209 0 : $postVars.= "<input name='$key' type='hidden' id='$key' value=\"".Data::toHTML($postVar) ."\" />\n";
210 : }
211 0 : }
212 0 : }
213 0 : if ($width) echo "<table width='".$width."%'>";
214 0 : else echo "<table class='tableBorder' cellspacing='0'>";
215 0 : echo "<tr><td class='tableHead'>Bestätigung</td>\n";
216 0 : echo "</tr>\n";
217 0 : echo "<tr><td class='text12'>$text</td>\n";
218 0 : echo "</tr>\n";
219 0 : echo "<tr><td align='center' class='text12'><hr/>\n";
220 0 : echo " <p class='pForm'><input name='Confirmed' type='submit' id='Confirmed' value='Ja' /></p> \n";
221 0 : echo " <p class='pForm'><input name='NotConfirmed' type='submit' id='NotConfirmed' value='Nein' /></p>\n";
222 0 : echo " </td>\n";
223 0 : echo "</tr><tr><td>\n";
224 0 : if (isset($postVars)) echo $postVars;
225 0 : echo "</td></tr></table></form></td></tr>\n";
226 0 : if ($table) echo "</table>";
227 : }
228 0 : }
229 : /**
230 : * Gibt einen Link zum Sendmail-Script aus
231 : * Mit diesem Link läßt sich der Sendmail-Dialog öffnen um eine Email an<b>$userID</b>
232 : * zu schicken. Nachdem die Nachricht verschickt, oder Abgebrochen wurde wird automatisch auf
233 : * das aufrufende Script zurückverwießen.<br>
234 : * <b>Vorsicht!</b> POSTDATA wird nicht gespeichert!<br>
235 : * Wird <b>$linkLabel</b> leer gelassen, wird der Name des Users verwendet.
236 : * @static
237 : * @access public
238 : * @author Christian Gerhardt <case42gmx.net>
239 : * @param integer $userID - Die UserID des Empfängers.
240 : * @param string $linkLabel - der String der als Link ausgegeben wird.
241 : * @return bool
242 : */
243 : function mailTo($userID, $linkLabel = null) {
244 0 : global $db;
245 0 : if (is_numeric($userID)) { //wenn $userID keine Zahl ist, braucht man garnicht erst weiter machen!
246 0 : if (is_null($linkLabel)) {
247 0 : $u = $db->get_row("SELECT Vorname, Nachname FROM user WHERE ID='$userID'");
248 0 : if ($u) {
249 0 : $linkLabel = $u->Vorname." ".$u->Nachname;
250 0 : } else {
251 0 : $linkLabel = "unbekannt";
252 : }
253 0 : }
254 0 : echo "<a href='".PATH_TO_ROOT."communication/sendmail.php?to=$userID&callingScript=";
255 0 : echo urlencode(PATH_TO_ROOT.SCRIPT_NAME);
256 0 : echo "'>$linkLabel</a>\n";
257 0 : }
258 0 : }
259 : /**
260 : * Gibt einen Link zum Profil eines Portalbenutzers aus.
261 : * <b>Vorsicht!</b> POSTDATA wird nicht gespeichert!<br>
262 : * Wird <b>$linkLabel</b> leer gelassen, wird der Name des Users verwendet.
263 : * @static
264 : * @author Christian Gerhardt <case42@gmx.net>
265 : * @access public
266 : * @param integer $userID - Die UserID des Profil-Besitzers
267 : * @param string $linkLabel - Der String der als Link ausgegeben werden soll.
268 : * @return void
269 : */
270 : function linkToProfile($userID, $linkLabel = null) {
271 0 : global $db;
272 0 : if (is_numeric($userID)) {
273 0 : if (is_null($linkLabel)) {
274 0 : $u = $db->get_row("SELECT Vorname, Nachname FROM user WHERE ID='$userID'");
275 0 : if ($u) {
276 0 : $linkLabel = Data::toHTML($u->Vorname." ".$u->Nachname, false);
277 0 : } else {
278 0 : $linkLabel = "unbekannt";
279 : }
280 0 : }
281 0 : echo "<a href='".PATH_TO_ROOT."user/homepage.php?user=$userID'>$linkLabel</a>\n";
282 0 : }
283 0 : }
284 : /**
285 : * Methode zum standartisierten Ausgeben der unteren drei Knöpfe eines Dialog.
286 : * Es werden drei Knöpfe ausgegeben: (OK , Zurücksetzen und Abbrechen)<br>
287 : * Es werden die beiden Post-Variablen "okButton" und "cancelButton" erzeugt,
288 : * Mit dem Argument $labels kann man die Beschriftung ändern indem man ein
289 : * Array mit den folgenden assoziativen Schlüsseln übergibt:<br>
290 : * - okButton
291 : * - resetButton
292 : * - cancelButton
293 : * Es brauchen nicht alle Schlüssel belegt zu sein.<br>
294 : * Wenn den Schlüsseln '' übergeben wird, werden sie nicht angezeigt.
295 : * Mit dem Argument $resettype kann bestimmt werden ob der Zurücksetzen Knopf
296 : * nicht doch noch mit einem Inputtype='submit' realisiert werden soll.<br>
297 : * - $resettype = true -> Inputtype='reset'
298 : * - $resettype = false -> Inputtype='submit'
299 : * - $resettype = "none" -> kein resetbutton wird ausgegeben.
300 : * Mit Hilfe mit $additional können zusätzliche Knöpfe zwischen dem okButton und dem
301 : * resetButton ausgeben werden.<br>
302 : * Der gesammte $additional-String wird an dieser Stelle ausgegeben.
303 : * @static
304 : * @author Christian Gerhardt <case42@gmx.net>
305 : * @access public
306 : * @param array $labels - die Beschriftung der Knöpfe
307 : * @param integer $colspan - Die Spaltenspanne der Tabelle
308 : * @param mixed $resettype - ob der Resetbutton vom Typ "reset" sein soll.
309 : * @param string $additional - zusätzliche Ausgabe
310 : * @return void
311 : */
312 : function echoDialogBottom($labels = null, $colspan = 1, $resettype = true, $additional = null) {
313 0 : if (!isset($labels['okButton'])) $labels['okButton'] = "OK";
314 0 : if (!isset($labels['resetButton'])) $labels['resetButton'] = "Zurücksetzen";
315 0 : if (!isset($labels['cancelButton'])) $labels['cancelButton'] = "Abbrechen";
316 0 : $resettype ? ($reset = "reset") : ($reset = "submit");
317 0 : echo "<tr><td class='text12' align='center' colspan='$colspan'>\n";
318 0 : echo "<hr/>\n";
319 0 : echo "<div class=\"nobr\">";
320 0 : if ($labels['okButton'] != '') echo "<p class='pForm'><input type='submit' name='okButton' value='".$labels['okButton']."' /></p>\n";
321 0 : echo $additional;
322 0 : if ($labels['resetButton'] != '' and $resettype !== 'none') echo "<p class='pForm'><input type='$reset' name='resetButton' value='".$labels['resetButton']."' /></p>\n";
323 0 : if ($labels['cancelButton'] != '') echo "<p class='pForm'><input type='submit' name='cancelButton' value='".$labels['cancelButton']."' /></p>\n";
324 0 : echo "</div></td></tr>\n";
325 0 : }
326 : /**
327 : * Benutzergruppen-Bild
328 : *
329 : * @access public
330 : * @static
331 : * @author Thomas Loreit
332 : * @param int $userID ID der Benutzers
333 : * @param int $usergroup ID der Benutzergruppe
334 : * @param int $courseID ID des aktuellen Kurses
335 : * @return string HTML-Tag des Benutzergruppen-Bildes
336 : */
337 : function getUsergroupPicture($userID = 0, $usergroupID = 0, $courseID = 0) {
338 0 : global $db, $EZSQL_ERROR;
339 : //Wenn ein Kurs angegeben ist könnte sich die Rolle (usergroupID) darin ändern
340 0 : if ($courseID != 0) {
341 0 : $groupID = $db->get_var("SELECT IF(differentUsergroup>0, differentUsergroup, Usergroup) AS Usergroup FROM user LEFT JOIN user_course ON ID=userID WHERE ID='$userID' AND courseID='$courseID'");
342 0 : if ($groupID != 0) $usergroupID = $groupID; //mit neuer Rolle überschreiben
343 :
344 0 : }
345 : //Icon der Usergroup holen
346 : switch ($usergroupID) {
347 0 : case 1:
348 : /*Admin*/
349 0 : $usergroupPicture = Output::getIcon("icon_admin", "Admin");
350 0 : break;
351 :
352 0 : case 2:
353 : /*Student*/
354 0 : $usergroupPicture = Output::getIcon("icon_student", "Student");
355 0 : break;
356 :
357 0 : case 3:
358 : /*Dozent*/
359 0 : $usergroupPicture = Output::getIcon("icon_dozent", "Dozent");
360 0 : break;
361 :
362 0 : case 4:
363 : /*Sekretatiat*/
364 0 : $usergroupPicture = Output::getIcon("icon_sekret", "Sekretariat");
365 0 : break;
366 :
367 0 : case 5:
368 : /*Alumnus*/
369 0 : $usergroupPicture = Output::getIcon("icon_alumnus", "Alumnus");
370 0 : break;
371 :
372 0 : case 6:
373 : /*Schueler*/
374 0 : $usergroupPicture = Output::getIcon("icon_schueler", "Schüler");
375 0 : break;
376 :
377 0 : case 7:
378 : /*Gast*/
379 0 : $usergroupPicture = Output::getIcon("icon_gast", "Gast");
380 0 : break;
381 :
382 0 : default:
383 : /*unbekannt*/
384 0 : $usergroupPicture = Output::getIcon("icon_schloss_zu", "Unbekannt");
385 0 : break;
386 0 : }
387 : //Wenn ein Kurs angegeben ist kann es auch noch sein, dass der Teilnehmer ein Tutor darin ist
388 0 : if ($courseID != 0) if ($db->get_var("SELECT assistents.userID FROM assistents WHERE assistents.courseID=".$courseID." AND assistents.userID=".$userID)) $usergroupPicture = Output::getIcon("icon_tutor", "Tutor");
389 0 : return $usergroupPicture;
390 : }
391 : /**
392 : * Liefert einen HTML String, der ein Icon ausgibt.
393 : *
394 : * IMG ist das einzige inline Element, was Größenangaben zulässt. Allerdings soll der Inhalt durch das Stylesheet
395 : * beeinflusst werden können, deshalb wird ein durchsichtiges GIF verwendet, und der Hintergrund und die Größe im
396 : * Stylesheet angegeben.
397 : *
398 : * @access public
399 : * @static
400 : * @author Thomas Loreit
401 : * @param $classname ist der Name der Style-Klasse aus dem Stylesheet
402 : * @param $title ist der Inhalt des "title" Attributs
403 : *
404 : */
405 : function getIcon($classname, $title) {
406 0 : $title = Data::toHTML($title);
407 0 : return "<img src='".PATH_TO_ROOT."images/transparent.gif' class='$classname' title='$title' alt='$title' />";
408 : }
409 : /**
410 : * Liefert einen HTML String, der ein Icon als Submit Button für eine Form ausgibt.
411 : *
412 : * @access public
413 : * @static
414 : * @author Thomas Loreit
415 : * @param $classname ist der Name der Style-Klasse aus dem Stylesheet
416 : * @param $title ist der Inhalt des "title" Attributs
417 : * @param $name ist der Name dieses Button in der Form (name-Attribut)
418 : *
419 : */
420 : function getSubmitIcon($classname, $title, $name) {
421 0 : return "<input type='image' src='".PATH_TO_ROOT."images/transparent.gif' class='$classname' title='$title' value='$title' name='$name'/>";
422 : }
423 : /**
424 : * liefert einen Link. Die Parameter werden nach HTML übersetzt.
425 : * url wird nicht geprüft, da sie relativ sein könnte. Wenn url leer ist,
426 : * wird ein leerstring zurückgegeben.
427 : * @author Simon Thum
428 : */
429 : function getLink($url, $label, $title, $newwindow = false, $onClick = '') {
430 0 : $title = "title='".Data::toHTML($title) ."'";
431 0 : $label = Data::toHTML($label);
432 0 : $target = $newwindow === true ? "target='_blank'" : "";
433 0 : $onClick = ($onClick != '') ? ('onClick="'.$onClick.'"'):'';
434 0 : return empty($url) ? "" : "<a href='$url' $title $target $onClick>$label</a>";
435 : }
436 : /**
437 : * gibt einen Link aus. Details siehe getLink.
438 : */
439 : function echoLink($url, $label, $title, $newwindow = false, $onClick = '') {
440 0 : echo Output::getLink($url, $label, $title, $newwindow, $onClick);
441 0 : }
442 : }
|